home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / make / icmake-6.000 / icmake-6 / icmake / comp / insertar.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-02-08  |  784 b   |  27 lines

  1. /*
  2.                             I N S E R T A R . C
  3. */
  4.  
  5. #include "iccomp.h"
  6.  
  7. ESTRUC_ *insertarg(insert, mult)
  8.     ESTRUC_
  9.         *insert,
  10.         *mult;
  11. {
  12.     register unsigned
  13.         count;
  14.  
  15.     count = ++mult->type;                   /* get/increase # of args */
  16.                                             /* room for extra ESTRUC_ */
  17.     mult->code = xrealloc(mult->code, count * sizeof(ESTRUC_));
  18.  
  19.     memmove(                                /* shift up for new firstarg */
  20.          codestruc(mult, 1),
  21.          codestruc(mult, 0),
  22.          (count - 1) * sizeof(ESTRUC_));
  23.  
  24.     etoc(insert);                           /* argument is code now */
  25.     *codestruc(mult, 0) = *insert;          /* insert expression in array */
  26.     return (mult);                          /* done */
  27. }